table of contents
drbd.conf(5) | DRBD - кластер дисків | drbd.conf(5) |
ІМ'Я¶
drbd.conf - Конфігураційний файл для пристроїв DRBD.
ВСТУП¶
Файл /etc/drbd.conf використовується програмами /etc/init.d/drbd та /etc/ha.d/resource.d/drbddisk котрі є частиною пакету DRBD.
Формат файлу розроблений так, що дозволяє нам мати ідентичні копії файлу на обох вузлах кластеру. Настирливо рекомендується цим скористатись для забезпечення нормального управління конфігурацією. Файл /etc/drbd.conf повинен бути однаковий на обох вузлах кластеру. Зміни в /etc/drbd.conf не вступають в силу негайно.
Маленький приклад файлу /etc/drbd.conf
resource drbd0 {
protocol C;
incon-degr-cmd "halt -f";
on primarydhcp {
device /dev/drbd1;
disk /dev/hda7;
address 10.0.0.10:7789;
meta-disk internal;
}
on secondarydhcp {
device /dev/drbd1;
disk /dev/hda7;
address 10.0.0.11:7789;
meta-disk internal;
}
}
Можна визначати багато розділів з ресурсами в одному файлі drbd.conf.
СТРУКТУРА ФАЙЛУ¶
Файл складається з розділів і параметрів. Розділ починається з ключового слова, часом з додаткового імені та відкриває дужки (``{``). Розділ закінчується закриванням дужки (``}``). Між дужками містяться параметри.
section [name] { parameter value; [...] }
Деякі значення параметру мають визначені символи: K, M or G. котрі визначаються у звичний спосіб (K = 2^10 = 1024, M = 1024 K, G = 1024 M).
Файл може містити коментарі, які мусять починатись з (``#``). Після символу (``#``) дані ігноруються до кінця стрічки.
РОЗДІЛИ¶
- skip
- Коментує текстове сміття, якщо воно навіть займає більш ніж одну стрічку. Символи між ключовим словом skip та відкритою дужкою (``{``) ігноруються. Все поміщене між дужки пропускається. Це допомагає коментувати цілі розділи:
skip {
resource [name] {...}
}
просто помістивши їх між дужки skip.
- global
- Вказує деякі глобальні параметри. Поки що дозволеними є minor-count, dialog-refresh та disable-io-hints. Можна використовувати тільки один розділ global, бажано самий перший.
- resource name
- Визначає сам ресурс DRBD. Кожний розділ, визначаючий ресурс, мусить містити дві секції "on ім'я-вузла" і може мати також секції startup, syncer, net та disk. Обов'язковим параметром розділу є protocol. Не обов'язковим: incon-degr-cmd.
- on host-name
- Поєднує необхідні параметри конфіґурації DRBD пристрою для включених ресурсів. host-name є обов'язковим і мусить відповідати імені Лінукс компа (uname -n) одного з вузлів. Обов'язковими параметрами секції є: device, disk, address, meta-disk.
- disk
- Цей розділ використовується для оптимізації DRBD пристроїв, а саме властивостей пов'язаних з низькорівневим обладнанням. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковим параметром є: on-io-error.
- net
- Розділ використовують для оптимізації мережевих властивостей DRBD. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковими параметрами є: sndbuf-size, timeout, connect-int, ping-int, max-buffers, max-epoch-size, ko-count, on-disconnect.
- startup
- Розділ використовують для оптимізації властивостей запуску DRBD. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковими параметрами є: wfc-timeout, degr-wfc-timeout.
- syncer
- Розділ використовують для оптимізації пристрою синхронізаційного сервісу. Для детальної інформації про параметри читайте drbdsetup(8). Необов'язковими параметрами є: rate, group, al-extents.
ПАРАМЕТРИ¶
- minor-count count
- count може
бути
числом від
1 до 255.
Використовуйте minor-count, якщо бажаєте визначити більше ресурсів потім без перевантаження DRBD модуля ядра. По замовчуванню модуль вантажиться стільки раз скільки пристроїв визначено в конфігураційному файлі. По замовчуванню модуль збирається з 2, а монолітне ядро з 8. Для монолітного ядра параметр minor-count ігнорується, для зміни потрібно вказати параметр завантаження ядра drbd.minor_count=count.
- dialog-refresh time
- час
може бути >=0
Час в секундах і кількість разів скільки виводиться користувацьке застереження (не виводиться коли 0). По замовчуванню 1.
- disable-io-hints
- Використовуйте disable-io-hints якщо бажаєте встановити DRBD пристрій через зворотню петлю, чи між двома віртуальними серверами на одній машині, для тестування чи презентації. Не потрібна з ядром 2.6.*
- protocol prot-id
- По верх TCP/IP
використовується
спеціальний
протокол.
Допустимі
протоколи:
A, В, та C.
Протокол А: операція запису вважається завершеною, якщо дані досягли локального диску та локальної вихідної черги tcp.
Протокол В: операція запису вважається завершеною, якщо дані досягли локального диску та віддаленого буферу.
Протокол С: операція запису вважається завершеною, якщо дані досягли обох, локального та віддаленого, дисків.
- incon-degr-cmd command
- У випадку коли при включенні вузла він вантажиться у виродженому режимі (inittimeout включений) і якщо локальна реплікація даних не є повна, запускається command. Якщо команда виконується без помилок drbddisk вважає що DRBD пристрій є в основному стані (primary).
- device name
- Ім'я
блочного
пристрою
вузла, що
описується
в розділі
resource. Ви
мусите
використовувати
саме цей
пристрій
для роботи
з
програмами
(файловими
системами)
і ніколи не
використовуйте
низькорівневий
блочний
пристрій
котрий
вказаний з
параметром
disk.
Пристрій вузла мусить мати той самий головний номер, як і пристрій DRBD. В поточній реалізації використовується головний номер 147 і відповідні пристрої вузла називають /dev/drbd0, /dev/drbd1,...
При встановлені DRBD пакету скрипт створює /dev/drbd0 ... /dev/drbd8. Для переконання пошукайте за /dev/drbd*.
- disk name
- DRBD використовує цей пристрій для запису та зчитування даних. НІКОЛИ не користуйтесь цим пристроєм коли поверх нього працює DRBD. Це також відноситься до dumpe2fs(8) та подібних команд.
- address IP
- port :ресурс
потребує
вказати по
парі IP:port
адрес на
кожний
пристрій,
котрий
використовується
для
очікування
вхідного
зв'язку від
пристрою
іншого
вузла, для
встановлення
з ним
зв'язку.
Кожний DRBD ресурс потребує TCP порт котрий використовують для зв'язку з пристроєм партнерського вузла. Два різні DRBD ресурси не можуть використовувати ту саму пару IP:port на одному вузлі.
- meta-disk internal
- meta-disk device [index]
- internal означає
що останні
128 MB
низькорівневого
пристрою
використовуються
для
службових
даних. Не
можна
використовувати
[index] разом
з internal.
Можна використовувати єдиний блочний пристрій для зберігання службових даних багатьох DRBD пристроїв. Тобто використовуйте meta-disk /dev/hde6[0]; та meta-disk /dev/hde6[1]; для двох різних ресурсів. В цьому випадку мінімальний розмір для meta-disk мусить бути 256 MB.
- on-io-error handler
- handler
включається,
коли
низькорівневий
пристрій
посилає
помилку
зчитування/запису
на верхній
рівень.
handler може бути : pass_on, panic, чи detach.
pass_on: Повідомляє помилку зчитування/запису на верхній рівень. На основному вузлі повідомляє примонтовану файлову систему. На другорядному ігнорує.
panic: Вузол залишає кластер створюючи паніку ядра.
detach: Вузол ігнорує низькорівневий пристрій та продовжує роботу в бездисковому режимі.
- sndbuf-size size
- size є розміром вихідної черги TCP. По замовчуванню 128K. Можна вказати більше чи менше значення. Більше значення краще для збільшення пропускної здатності при використанні протоколу А через дуже стабільну мережу. Дуже великі значення ~1M можуть привести до проблем. А значення менші 32K не доречні.
- timeout time
- Якщо партнерський вузол не може відіслати пакет з відповіддю протягом time десятих секунди, партнерський вузол вважається не робочим і тому TCP/IP зв'язок до нього розривається. Це значення мусить бути меншим ніж connect-int та ping-int. По замовчуванню є 60 = 6 секунд, крок 0.1 секунди.
- connect-int time
- У випадку неможливості зв'язку з віддаленим DRBD пристроєм негайно, DRBD продовжує спроби зв'язатись. З допомогою цього параметру можна вказати час між двома спробами. По замовчуванню значення є 10 секунд, крок 1 секунда.
- ping-int time
- Якщо зв'язок TCP/IP між парою пристроїв DRBD є вільним більш ніж time секунд, DRBD буде генерувати пакети keep-alive, для перевірки справної роботи партнера. По замовчуванню є 10 секунд, крок 1 секунда.
- max-buffers number
- Максимальне число запитів, що приймається DRBD. Крок є PAGE_SIZE, котрий становіть 4 KB в більшості систем. Нижня грань 32 (=128 KB). Для забезпечення високої продуктивності допомагає збільшення number. Ця черга використовується для утримування даних поки вони записуються на диск.
- max-epoch-size number
- Найвище число блоків даних між двома бар'єрами запису. Якщо встановити меншим за 10 може значно зменшити продуктивність.
- ko-count count
- У випадку зупинки другорядного вузла під час спроби завершити один запит запису count разів з часовими інтервалами timeout, вузол виключається з кластеру. (Тобто основний вузол переходить у вироджений режим.) По замовчуванню 0, що виключає цю властивість.
- on-disconnect handler
- Коли
зв'язок з
партнером
пропав, DRBD
може або
перейти у
вироджений
режим, або
намагатись
відновити
з'єднання з
партнером,
або
заморозити
всі
майбутні
операції
вводу/виводу
(подумайте
про
жорстко
примонтований
том NFS).
Можливими
значення є:
stand_alone, reconnect і freeze_io.
По
замовчуванню
reconnect.
stand_alone: Не відновлювати зв'язок і перейти у вироджений режим.
reconnect: Старатись відновити зв'язок.
freeze_io: Намагатись відновити зв'язок, але заморозити ввід/вивід поки зв'язок не відновиться знов.
- wfc-timeout time
- Чекати на з'єднання протягом часу time. init скрипт drbd(8) блокує завантажувальний процес поки DRBD ресурси не зв'яжуться. Це буває коли управління кластером стартує пізніше, внутрішні пов'язані з цим ресурси залишаються невидимі. У випадку бажання обмежити час очікування зробіть це тут. По замовчуванню 0, що значить необмежено. Крок 1 секунда.
- degr-wfc-timeout time
- Очікування для відновленням з'єднання протягом time, якщо вузол був виродженим кластером. У випадку перевантаження виродженого кластера (= кластер в котрого залишивсь тільки один вузол), цей час очікування використовується замість wfc-timeout, тому що партнер навряд чи включиться в цей проміжок, коли вийшов з ладу перед тим. По замовчуванню 60, крок 1 секунда. Значення 0 означає без обмежень.
- rate rate
- Для гарантування стабільної роботи програм поверху DRBD, є можливим обмежити розмір каналу що використовується для синхронізації блочних пристроїв між вузлами кластеру. По замовчуванню 250KB/sec, по замовчуванню крок KB/sec. Можливі суфікси: K, M, G.
- group number
- Десинхронізація пристроїв однієї групи виконується паралельно. Групи отримують доступ послідовно. Потрібно не дозволяти пристроям які поділяють один фізичний пристрій синхронізуватись паралельно. По замовчуванню всі пристрої є в групі 0 тобто будуть синхронізуватись паралельно. Дозволяються від'ємні та позитивні значення.
- al-extents extents
- DRBD автоматично визначає робочої області. Цим параметром контролюється скільки місця виділяється для роботи (=active set). Кожна одиниця відповідає 4M робочого диску (=низькорівневого пристрою). У випадку неочікуваної зупинки основного вузла, розмір даних визначений опцією, мусить бути розсинхронізований до приєднання вузла. Структура даних зберігається в області службових даних, тому кожна зміна робочої області приводить до операції запису на пристрій з службовими даними. Велике число extents дає довший період десинхронізації але менші поновлення до службових даних. По замовчуванню extents є 127. (Мінімум 7, максимум 3843.)
ВЕРСІЯ¶
Цей документ коректний для версії 0.7.5 пакету DRBD.
АВТОРИ¶
Написаний Филипом Рейзнером (Philipp Reisner) <philipp.reisner@linbit.com>.
Сторінка підручника була переглянута та переписана Гелмутом Воллмерсдорфером (Helmut Wollmersdorfer) <helmut.wollmersdorfer@linbit.com>.
ПОВІДОМЛЕННЯ ПОМИЛОК¶
Повідомляйте помилки на <drbd-user@lists.linbit.com>.
АВТОРСЬКІ ПРАВА¶
Copyright (c) 2001 Philipp Reisner. Це вільні програми; дивіться джерельні коди для встановлення прав копіювання. Нема ніяких гарантій; навіть для зручності використання в конкретному випадку.
ПОДІБНІ ТЕМИ¶
drbd - кластер дисків, drbd(8), drbddisk(8), drbdsetup(8), drbdadm(8).
v 0.7.* переклад: бета версія 2007-10-27-16:31 | © 2005-2007 DLOU, GNU FDL |